package com.erp.service.util.net;

import java.util.List;

import org.apache.http.NameValuePair;

/**
 * 通用实体请求接口, 目前只实现了JSON的
 * 
 * @author ccl
 * @see NDJSONRequest
 */
public interface IEntityRequest {

	/**
	 * 向指定URL发送的请求，返回实体
	 * 
	 * @author ccl
	 * 
	 * @param url
	 *            发送请求的URL
	 * @param params
	 *            传入的参数键值对，内部会将传入的值进行UrlEncode
	 * @param RequestMethod GET或POST
	 * @throws Exception
	 * 
	 * @return URL所代表远程资源的响应
	 */
	public abstract <T> T sendForEntity(String url, List<NameValuePair> params,Object entity,
			String requestMethod, Class<T> returnType) throws Exception;

	/**
	 * 向指定URL发送的请求，返回实体列表
	 * 
	 * @author ccl
	 * 
	 * @param url
	 *            发送请求的URL
	 * @param params
	 *            传入的参数键值对，内部会将传入的值进行UrlEncode
	 * @param RequestMethod GET或POST
	 * @throws Exception
	 * 
	 * @return URL所代表远程资源的响应
	 */
	public abstract <T> List<T> sendForEntityList(String url,
			List<NameValuePair> params,Object entity, String requestMethod,
			Class<T> returnType) throws Exception;

}